package q101_isSymmetric;

import CommonClass.Common.TreeNode;
public class Solution_1 {
    public static void main(String[] args) {

    }

    /**
     * 递归的方法
     */
    public boolean isSymmetric(TreeNode root) {

        return checkSymmetric(root.left, root.right);
    }

    private boolean checkSymmetric(TreeNode l, TreeNode r) {
        // 全都是null的情况
        if (l == null && r == null) {
            return true;
        }

        // 有一个是null的情况
        if ((r == null)||(l == null)) {
            return false;
        }

        // 接下来就只有两个都有的情况了
        if (l.val != r.val){
            return false;
        }

        return checkSymmetric(l.left, r.right)&&checkSymmetric(l.right, r.left);
    }
}
